package org.pine.api.beans.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.pine.api.utils.TimeUtil;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 角色查询响应
 *
 * @author pine
 * @version v1.0
 * @since 2025-04-19 14:53
 */
@Data
public class RoleQueryResponse implements Serializable {
    @Serial
    private static final long serialVersionUID = -3089730461153911802L;

    /**
     * 角色编码
     */
    @Schema(title = "角色编码", description = "角色编码")
    private String code;

    /**
     * 角色名称
     */
    @Schema(title = "角色名称", description = "角色名称")
    private String name;

    /**
     * 角色描述
     */
    @Schema(title = "角色描述", description = "角色描述")
    private String description;

    /**
     * 角色类型:1=超级管理员角色,2=普通管理员角色,3=普通角色
     */
    @Schema(title = "角色类型", description = "角色类型:1=超级管理员角色,2=普通管理员角色,3=普通角色")
    private Integer roleType;

    /**
     * 状态:0=无效,1=有效
     */
    @Schema(title = "状态", description = "状态:0=无效,1=有效")
    private Integer status;

    /**
     * 备注
     */
    @Schema(title = "备注", description = "备注")
    private String remark;

    @Schema(title = "id", description = "id")
    private Long id;

    @Schema(title = "创建人", description = "创建人")
    private String createUser;

    @Schema(title = "创建人ID", description = "创建人ID")
    private Long createUserId;

    @Schema(title = "更新人", description = "更新人")
    private String updateUser;

    @Schema(title = "更新人ID", description = "更新人ID")
    private Long updateUserId;

    @JsonFormat(pattern = TimeUtil.DEFAULT_DATE_TIME_PATTERN, timezone = TimeUtil.GMT_8)
    @Schema(title = "创建时间", description = "创建时间")
    private LocalDateTime createTime;

    @JsonFormat(pattern = TimeUtil.DEFAULT_DATE_TIME_PATTERN, timezone = TimeUtil.GMT_8)
    @Schema(title = "更新时间", description = "更新时间")
    private LocalDateTime updateTime;
}
